function getSomething() {
    var r = 0;
    return new Promise(function(resolve) {
        setTimeout(function() {
            r = 2;
            resolve(r);
        }, 10);
    });
}

function compute(x) {
    console.log(x * 2);
}
getSomething().then(compute)

//promise仍然没有放弃回调，只是回调的位置发生了改变。


//再后来我又学会了generator，知道其有中断函数执行的能力，又做了新的尝试：

/*

function getSomething() {
    var r = 0;
    setTimeout(function() {
        r = 2;
        it.next(r);
    }, 10);
}

function *compute(it) {
    var x = yield getSomething();
    alert(x * 2);
}
var it = compute();
it.next();*/
